package com.yanfan.ccapicode.dao.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * 产品
 * @TableName iot_product
 */
@Data
@TableName(value ="iot_product")
@EqualsAndHashCode
public class IotProductDO implements Serializable {
    /**
     * 产品ID
     */
    @TableId
    private Long productId;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 协议编号
     */
    private String protocolCode;

    /**
     * 产品分类ID
     */
    private Long categoryId;

    /**
     * 产品分类名称
     */
    private String categoryName;

    /**
     * 租户ID
     */
    private Long tenantId;

    /**
     * 租户名称
     */
    private String tenantName;

    /**
     * 是否系统通用（0-否，1-是）
     */
    private Integer isSys;

    /**
     * 是否启用授权码（0-否，1-是）
     */
    private Integer isAuthorize;

    /**
     * mqtt账号
     */
    private String mqttAccount;

    /**
     * mqtt密码
     */
    private String mqttPassword;

    /**
     * 产品秘钥
     */
    private String mqttSecret;

    /**
     * 状态（1-未发布，2-已发布）
     */
    private Integer status;

    /**
     * 物模型JSON（属性、功能、事件）
     */
    private Object thingsModelsJson;

    /**
     * 设备类型（1-直连设备、2-网关设备、3-监控设备）
     */
    private Integer deviceType;

    /**
     * 联网方式（1=wifi、2=蜂窝(2G/3G/4G/5G)、3=以太网、4=其他）
     */
    private Integer networkMethod;

    /**
     * 认证方式（1-简单认证、2-加密认证、3-简单+加密）
     */
    private Integer vertificateMethod;

    /**
     * 图片地址
     */
    private String imgUrl;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 产品支持的传输协议
     */
    private String transport;

    /**
     * 定位方式(1=ip自动定位，2=设备定位，3=自定义)
     */
    private Integer locationWay;

    /**
     * 产品关联的组态id
     */
    private String guid;

    /**
     * 请求路径
     */
    private String url;

    /**
     * 请求类型
     */
    private String methodType;

    /**
     * get请求参数
     */
    private String paramsData;

    /**
     * 请求头参数
     */
    private String headers;

    /**
     * post、put请求参数
     */
    private String data;

    /**
     * body请求参数类型
     */
    private String contentType;

    /**
     * 请求间隔时间 cron表达式
     */
    private String cronExpression;

    /**
     * 参数类型
     */
    private String requestType;

    /**
     * body请求参数类型
     */
    private Integer contentTypeNumber;

    /**
     * 响应数据key
     */
    private String responseKey;

    /**
     * 远程设备地址
     */
    private String ipAddress;

    /**
     * 设备名称
     */
    private String equipmentName;

    /**
     * SNMP v1/v2c 团体名
     */
    private String community;

    /**
     * oid数组
     */
    private String oidListStr;

    /**
     * HTTP用户名
     */
    private String username;

    /**
     * HTTP密码
     */
    private String userpassword;

    /**
     * 1为启动，0为不启动，http接口是否需要先登录
     */
    private Integer httptype;

    /**
     * http密钥
     */
    private String userkey;

    /**
     * http地址
     */
    private String httpurl;
}
